This invention relates in general to a system for storing, inter-linking, retrieving and displaying data, documents and other information held in one or more computer systems and specifically to such a system implemented with object oriented techniques.
The work done by any one user, or by a collaborating group, in a large organization is rarely encompassed by information or data inside one application or system alone, or satisfied by a single source of information. There are a huge number of meaningful relationships or links between the items of data and information held inside the diverse applications, systems and information sources (collectively referred as "systems" herein) that require users to frequently move from one item of data/information in one system to another item of data/information in another system. For example, a user looking at an electronic copy of a purchase order for some equipment may want to (a) see catalogue details describing the equipment's specifications and also commercial details of the supplier of said equipment, (b) see which other equipment is supplied by the same supplier, (c) see what faults have been reported about one of those said other items of equipment, and (d) see details of the engineer who reported one of these faults. Typically, the purchase order will be available in a purchase management system, the supplier details and the equipment details will be in a separate inventory database application, the faults will be reported in a fault tracking system, the engineer's personal details may come from a personnel directory system, the electronic images of the purchase order may be held in a document management system and pages of the catalogue may be published on an Internet or Intranet system.
The meaningful relationships or links can take a wide variety of forms and permutations. There can be more than one kind of link between items of data/information in two different systems. This may be so if a document in the document management system can be either a purchase order or correspondence from a same particular supplier. There are also situations where two or more different types of links or relationships exist at the same time between the same two items of data/information. A person versed in the art will understand that the situation being described involves potentially unrestricted many to many relationships between items of data and information in different systems.
As such, there can be a whole range of many to many meaningful relationships between items of data and information in different systems that make sense to users. In order to serve different purposes, the user may want to follow the relationships in any order and in any permutation that is considered meaningful.
Collectively, the data and information available to users in an organization, along with meaningful relationships, not being bound by any restrictions of system boundary, can be said to constitute the organization's "knowledge". Of course, this is not an exhaustive definition of knowledge, for there is further knowledge that is added during usage of other knowledge, while there are yet other types of knowledge that are not held in any computer system or not held in a form discernible by a computer system such as in the form of paper, or in users' minds.
Some of the items of knowledge (note from above that links or relationships are items of knowledge) that users follow to move from one system to another are not originally present in any of the systems, and are instead added or recorded during the use of, or navigation among, knowledge. Such knowledge that is not originally present as aforesaid is, when it is necessary to distinguish it from knowledge present at a time or state immediately prior to said addition or recording, hereinafter referred to as "usage-added knowledge".
Examples of usage-created knowledge are (a) a note made by a user that certain items of data/information from two different systems should be seen together for a certain purpose, (b) addition of one or more types of links by a user between certain items of data/information from one or more systems for specific temporary or permanent purposes of the user, and (c) the fact that some other user has already seen or not yet seen a particular item of data/information. This usage-created knowledge, once added, becomes as much a part of the knowledge of the organization as any other knowledge that was previously present. Naturally, and importantly, the usage-created knowledge needs to be available for everything for which the pre-existing knowledge is available, including navigation or access by users and further addition or recording of usage-created knowledge.
Henceforth, the word "knowledge" shall, unless the contrary is expressly stated, include usage-created knowledge added or recorded up to the time or state to which reference is made. The word "links" shall include said relationships between items of data/information, as well as links made as a part of usage-created knowledge.
A person versed in the art will find it obvious that not all this usage-created knowledge can properly be stored or manipulated in any one of the individual systems, for much of this knowledge is about things that cross or straddle boundaries of two or more systems. As such, it is desirable to have means through which a wide range of usage-created knowledge can be added and interacted with, even though such knowledge cannot easily or properly be accommodated in any of the involved systems. Further, it is necessary for said means to accommodate usage-created knowledge involving items of data/information in new or newly related systems.
Further, when knowledge includes data and information from multiple systems, it is desirable to keep the changes in user interface, data structures and functionality of each of the separate systems down to a minimum. Many of these systems may have their own user interface, their own structures to hold data and information and relationships between them, their own security and other functionality, such as is specifically suitable to that particular system. As such, it is desirable to have a minimized domain of changes to the user interface, data structures and other special functionality of the various systems.
Further still, given the large number, high complexity and diversity in type of the many to many links comprised in the knowledge, and the diversity of the types of usage-created knowledge that can be added or recorded, there is the potential for the user interface for navigation of and interaction with the knowledge to become very complex. There can potentially be a bewildering range of choices faced by the user at every point during navigation or interaction with the knowledge. As such, it is desirable to have a minimized domain of user interface metaphors and choices, while continuing to have all the functionality to navigate and interact with knowledge involving diverse systems.
Moreover, a large number, high complexity and diversity in type of many to many links potentially places a high computational load during navigation of or interaction with knowledge, and during addition or recording of further links. As such, a scaleable means of storing, retrieving, navigating and adding of many to many links is required.
Another factor arises when there are a large number and type of possible links, and many of those links are made as part of usage-created knowledge. If the only thing that a user can do is to navigate manually, starting from one item and following through one or more paths, then much of the potential power of the links inside the knowledge is lost. Users can get valuable knowledge out of knowing things like whether and when a particular colleague has seen data/information items of a certain type, or what different types of links exist between two different items of data/information, or which items that are linked to a particular document have been seen a particular colleague within the last two days. This requires the ability to query the typed links in a multidimensional yet highly efficient manner. Where a particular query needs to be repeated, it is necessary to have the query performed as part of the normal user interface for navigation, in order to reduce the burden of complexity on the user.
As such, there is a need for a knowledge unification mechanism that enables users to navigate and interact with the countless meaningful many to many links between systems, including navigating, adding or recording of a wide range of usage-created knowledge that cannot easily be held in any one system providing data/information, such that this mechanism works without significantly altering or discarding the user interface, data structures and other special functionality of any of the linked systems, while providing a minimized domain of interface complexity for the user to navigate and interact with knowledge, further still providing for speed and computational efficiency during navigation and the addition or recording of usage-created knowledge, yet further providing efficient and dynamic querying involving a large number and variety of typed links.
There are numerous prior art ways to connect together the data and information in different systems or from different sources. One prior art method requires connected systems:
to expose unique references or pointers to individual items of data/information in such a way that the operating system or the visual interface can pick up a copy of a reference when the user so indicates, and PA0 to provide the ability for the user to attach a copy of any said unique reference to specific items of data/information in another system.
An example of such prior art method is known to those versed in the art as Microsoft Object Linking and Embedding and variations or descendants thereof. Typically, when a user is working inside a particular system, wherever there is encountered an attached unique reference, in effect a link, to data/information in another system, the user is shown the link and given an option to follow said link. This method extends to linking two different items of data/information in the same system.
One limitation of this and similar prior art methods is that the links are not abstracted out of an individual system into a separate structure, i.e. each link is held within one or other of the linked systems. As such, this prior art method does not cope with a wide range of usage-created knowledge, especially of a type that cannot properly be held in any one of the connected systems. For example, a note made about two different items of data/information in two different systems can only be visible from within one of the systems.
Another limitation of this prior art method is that as a link is not visible unless the user has first accessed the data/information to which the link is attached, it is difficult for a user to get an overview of a chain of links involving multiple types of links. This makes the prior art unsuitable for navigation of knowledge where there are a large number of possible many to many links.
Another prior art method involves holding said links between data/information in multiple systems inside a separate database. In effect, each link is achieved by holding references or pointers to the two linked items as values in the fields of a database. As the links are abstracted or taken away from the systems involved, further data can be added to the links and also there can be a large number of different types of links. Further still, each link can have an automatic counterpart in the reverse direction, allowing bi-directional navigation. Yet further, many such links can be created programmatically, for example on the basis of identity of values in nominated fields of the items of data/information being linked, i.e. through unique keys.
Prior art systems for navigating to information from multiple systems by holding links inside a relational database are disclosed in U.S. Pat. Nos. 5,257,185: "Interactive, cross-referenced knowledge system" and 5,630,125: "Method and apparatus for information management using an open hierarchical data structure". However, these prior art systems rely on information being organized in a hierarchical structure of topic and subtopic nodes with parent/child relationships. These topics and subtopics then serve as the primary keys for cross-referencing, as well as accessing and navigating the data/information. Such a constraint can only work when a knowledge delivery system is being authored for delivery to users, and is not easy to accommodate when systems with information/data already exist and their information may or may not exhibit any hierarchies of topics or subtopics, as is predicated in the circumstances for which the present invention provides a solution. The said constraint also applies to another prior art system, disclosed in U.S. Pat. No. 5,295,261 "Hybrid database structure linking navigational fields having a hierarchical database structure to informational fields having a relational database structure that provides for navigation of interlinked information."
An example of prior art that does not rely on the existence of topics and subtopics for navigation of data/information from multiple systems is a system marketed by EZPower Systems, Inc. under the name of EZPower. This prior art method uses data relationships from multiple systems by building multiple indexes on the nominated foreign keys in the records in these systems and then allows items of data and information, including documents and media objects, in the different systems to be navigated by means of these indexes. This prior art system does not exhibit the functionality of adding or recording usage-created knowledge that involve the linking between or linking of notes or other objects to items of data/information for which relationships are obtained as aforesaid.
None of the prior art systems discloses the synchronizing of items of data/information in external systems with the database holding the links within the knowledge, which means that the external systems cannot readily be used as the primary starting or searching points for information. Further, it is a limitation of those prior art systems that hold links between said items in a database that all paths of navigation end in leaf nodes or end points other than returning to an immediately prior node in a hierarchical or similar navigation. Consequently, even if there were provision for said synchronization, said external items can only be used as limited starting points in navigation through the interlinked knowledge.
None of the prior art systems discloses the ability to add or record on an ongoing basis usage-created knowledge in the sense described herein. In particular, the prior art systems do not disclose the ability, without serious restrictions, to add notes or any other item of data/information to any item of data/information, irrespective of the type of the latter or former item. The prior art does not disclose an ability to make the notes added to or multiple types of links made between items of data/information from multiple systems automatically available for navigation and addition or recording of further usage-created knowledge in the same manner as for pre-existing knowledge.
None of the prior art reveals a means that is scaleable or optimized for navigation of knowledge when the number of items of data and information as well as the number and variety of links between them is very large.
None of the prior art reveals the ability to keep the user interface reduced to a small number of interface concepts and options, irrespective of the complexity of interlinking of items of data and information.